Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] [C++]Ekwipunek w grze


Rekomendowane odpowiedzi

Opublikowano

Macie racje kod jest zbyt dlugi i poprawie to co mam poprawic.

dzięki za te rady na pewno sie do nich dostosuje,jak poprawie to moze potem dodam

 
 

Opublikowano

Istnieje taka umowna zasada, że "w plikach nagłówkowych robimy tylko deklaracje, natomiast definicje w plikach .cpp, gdzie dołączamy nagłówek .h. Poczytaj co linker robi jeśli się nie dostosujesz.

2.

//Zmienne do switcha//
	char wartosc_01;
	char wartosc_02;
	char wartosc_03;
	char wartosc_04;
	char wartosc_05;
	char wartosc_06;
	char wartosc_07;
	char wartosc_08;
	char wartosc_09;
	char wartosc_10;
	//Ilosc skladnikow eliksirow//
	static int ilosc_1 = 0;
	static int ilosc_2 = 0;
	static int ilosc_3 = 0;
	static int ilosc_4 = 0;
	static int ilosc_5 = 0;
	static int ilosc_6 = 0;
	static int ilosc_7 = 0;
	static int ilosc_8 = 0;
	static int ilosc_9 = 0;
	//Skladniki eliksirow//
	static string przedmiot_10 = "Skladnik eliksirow_01";
	static string przedmiot_11 = "Skladnik eliksirow_02";
	static string przedmiot_12 = "Skladnik eliksirow_03";
	static string przedmiot_13 = "Skladnik eliksirow_04";
	static string przedmiot_14 = "Skladnik eliksirow_05";
	static string przedmiot_15 = "Skladnik eliksirow_06";
	static string przedmiot_16 = "Skladnik eliksirow_07";
	static string przedmiot_17 = "Skladnik eliksirow_08";
	static string przedmiot_18 = "Skladnik eliksirow_09";

Dlaczego nie użyjesz tutaj tablic ? o.O

Tego nie rozumiem co miałeś na myśli tworząc to:

while(wartosc_01 == 'T' || wartosc_01 == 't')
			{
				system("cls");
				string &ref_01 = przedmiot_10;
				ref_01 = "";
				;break;
			}

przecież ref_01 jest dostępna tylko w bloku while{}

jeśli chcesz wyczyścić ten string, to wystarczy : zmienna = "" lub zmienna.clear()

To już jest chyba najlepsze:

while(wartosc_10 == 'T' || wartosc_10 == 't')
			  {
				  system("cls");
				  string &ref_010 = przedmiot_10;
				  ref_010 = "";
				  string &ref_011 = przedmiot_11;
				  ref_011 = "";
				  string &ref_012 = przedmiot_12;
				  ref_012 = "";
				  string &ref_013 = przedmiot_13;
				  ref_013 = "";
				  string &ref_014 = przedmiot_14;
				  ref_014 = "";
				  string &ref_015 = przedmiot_15;
				  ref_015 = "";
				  string &ref_016 = przedmiot_16;
				  ref_016 = "";
				  string &ref_017 = przedmiot_17;
				  ref_017 = "";
				  string &ref_018 = przedmiot_18;
				  ref_018 = "";
				  ;break;

Według mnie pisanie programu ma być jak najszybsze. Ty tutaj symulujesz ładowanie nie robiąc nic:

case 0: quit = true;
			cout << "Ladowanie wyboru rodzaju przedmiotow";
			Sleep(600);
			cout << ".";
			Sleep(600);
			cout << ".";
			Sleep(600);
			cout << "." << endl;
			Sleep(500);
			cout << "Nacisnij enter aby kontynuowac..." << endl;
			;break;

Jeśli służy to to wyglądu (a tak prawdopodobnie jest) to usuń to coś i przyspiesz swój program, chyba o to chodzi, nie ?

Kolejne użycie tablic sie kłania:

//Ilosc przedmiotow fabularnych//
	static int ilosc1 = 0;
	static int ilosc2 = 0;
	static int ilosc3 = 0;
	static int ilosc4 = 0;
	static int ilosc5 = 0;
	static int ilosc6 = 0;
	static int ilosc7 = 0;
	static int ilosc8 = 0;
	static int ilosc9 = 0;
	static int ilosc10 = 0;
	static int ilosc11 = 0;
	static int ilosc12 = 0;
	static int ilosc13 = 0;
	static int ilosc14 = 0;
	static int ilosc15 = 0;
	static int ilosc16 = 0;
	static int ilosc17 = 0;
	static int ilosc18 = 0;
	//Przedmioty fabularne//
	static string przedmiot10 = "przedmiot fabularny_01";
	static string przedmiot11 = "przedmiot fabularny_02";
	static string przedmiot12 = "przedmiot fabularny_03";
	static string przedmiot13 = "przedmiot fabularny_04";
	static string przedmiot14 = "przedmiot fabularny_05";
	static string przedmiot15 = "przedmiot fabularny_06";
	static string przedmiot16 = "przedmiot fabularny_07";
	static string przedmiot17 = "przedmiot fabularny_08";
	static string przedmiot18 = "przedmiot fabularny_09";
	static string przedmiot19 = "przedmiot fabularny_10";
	static string przedmiot20 = "przedmiot fabularny_11";
	static string przedmiot21 = "przedmiot fabularny_12";
	static string przedmiot22 = "przedmiot fabularny_13";
	static string przedmiot23 = "przedmiot fabularny_14";
	static string przedmiot24 = "przedmiot fabularny_15";
	static string przedmiot25 = "przedmiot fabularny_16";
	static string przedmiot26 = "przedmiot fabularny_17";
	static string przedmiot27 = "przedmiot fabularny_18";
	//Glowna petle gry// 

Nie będę wymieniał dalej, bo dojechałem do połowy (a nawet nie, bo 600 linijka kodu!). Już wiem czemu ten kod zajął Ci aż 1730 linijek..

Opublikowano

Jak ja pisałem takie coś, to zajęło mi to około 1000 linijek a miało to więcej opcji niż ten twój skrypt.Posłuchaj rady kolegi ,który napisał wyżej.Używaj tablic,bez tego zginiesz.No i to udawanie że program coś robi podczas ładowania...

Opublikowano

Ten kod jest straszny. Nawet nie będę pisał co jest źle, bo jest cały do napisania od nowa.

 

To jest właśnie przykład brania się za grę bez znajomości podstaw. Tak się nie robi.

Opublikowano
//Strumien plikow//
		ofstream mojplik5;
		mojplik5.open("Skladniki Eliksirow.txt");
		mojplik5 << "" << endl;
		mojplik5 << "                         *************************" << endl;
		mojplik5 << "                         * Plecak z przedmiotami *" << endl;
		mojplik5 << "                         *************************" << endl;
		mojplik5 << " " << endl;
		mojplik5 << "*************************" << endl;
		mojplik5 << "* Skladniki eliksirow:  *" << endl;
		mojplik5 << "*************************" << endl;
		mojplik5 << "1." << przedmiot_10 << " ilosc: " << ilosc_1 << endl;
		mojplik5 << "2." << przedmiot_11 << " ilosc: " << ilosc_2 << endl;
		mojplik5 << "3." << przedmiot_12 << " ilosc: " << ilosc_3 << endl;
		mojplik5 << "4." << przedmiot_13 << " ilosc: " << ilosc_4 << endl;
		mojplik5 << "5." << przedmiot_14 << " ilosc: " << ilosc_5 << endl;
		mojplik5 << "6." << przedmiot_15 << " ilosc: " << ilosc_6 << endl;
		mojplik5 << "7." << przedmiot_16 << " ilosc: " << ilosc_7 << endl;
		mojplik5 << "8." << przedmiot_17 << " ilosc: " << ilosc_8 << endl;
		mojplik5 << "9." << przedmiot_18 << " ilosc: " << ilosc_9 << endl;
		mojplik5 << "*****************************************" << endl;
		mojplik5 << "* 0 - Powrot                            *" << endl;
		mojplik5 << "* 10 - usuniecie wszystkich przedmiotow *" << endl;
		mojplik5 << "*****************************************" << endl;
		mojplik5.close();
		string tekst5;
		fstream strumien6("Skladniki Eliksirow.txt");
		if(strumien6.is_open())
		{
			while(strumien6.good())
			{
				getline(strumien6,tekst5);
				cout << tekst5 << endl;
			}
			strumien6.close();
		}

What? O_o

 

    struct Przedmiot{
        std::string nazwa;
        int ilosc;
    };
    Przedmiot Przedmioty[8] = {{"Test 1",1},
                               {"Test 2",2},
                               {"Test 3",3},
                               {"Test 4",4},
                               {"Test 5",5},
                               {"Test 6",6},
                               {"Test 7",7},
                               {"Test 8",8}};

    for(int i = 0; i < sizeof(Przedmioty) / sizeof(Przedmioty[0]); ++i){
        std::cout << Przedmioty[i].nazwa << " ilosc:" << Przedmioty[i].ilosc << "\n";
    }

Magia.

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

Nie wiem, czy kod źródłowy w c++ można nazwać skryptem (bardziej kojarzy mi się z php albo ze skryptami do różnych programów), ale nie o to mi chodzi ;).

 

Myślę, że każdy dążący do stworzenia gry powinien mniej więcej wiedzieć albo wyobrazić sobie, jak mają wyglądać poszczególne elementy rozgrywki.

 

Ale podziwiam za to, że ci się chciało aż 1700 linijek kodu pisać xD.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Ale podziwiam za to, że ci się chciało aż 1700 linijek kodu pisać xD.

 

On napisał z 200-300 linijek reszta to Ctrl + C ---> Ctrl + V i zmiana nazw zmiennych.

Nie pomagam na PW, od tego macie forum!!!

 

#PHP-things

 

 

08FMpDu.png

 

Opublikowano

Nie czytałem kodu, ale w wypadku gry rpg ekwipunek lepiej zrobić w postaci zserializowanych obiektow(latwo je zapisac bedzie) w mapie zlozonej z elementów enuma. Tablice to zły nawyk. Wyobrażasz sobie dynamicznedodawanie takich obiektów bez jej zwiekszania?

Opublikowano

Nie czytałem kodu, ale w wypadku gry rpg ekwipunek lepiej zrobić w postaci zserializowanych obiektow(latwo je zapisac bedzie) w mapie zlozonej z elementów enuma. Tablice to zły nawyk. Wyobrażasz sobie dynamicznedodawanie takich obiektów bez jej zwiekszania?

 

Zobacz do kogo kierujesz te swoje pr0 rady. Walnij jeszcze kilka trudnych słów, niech chłopak pomyśli, że jest głupi.

 

 

 

Ja i tak bym to wszystko trzymał w bazie sqlite i bezpośrednio z niej pobierał bez żadnego cache. Jakie lagi? Jaka mała wydajność? To jest singleplayer...

Opublikowano

Nie kompromituj się.

 

Powiedział random na random-owym koncie.

 

 

//

Ehh rozmowa z kolejnym dzieciakiem, który twierdzi, że jest pr0. Jak widzisz nie nabijam postów, edytuję poprzedni.

"korzuch321" -> no i co mi to mówi? kolejny random.

"foxbond" -> wpisz w google, na forum. Jak umiesz szukać spokojnie znajdziesz me imię i nazwisko, czym się zajmuję nawet jak wyglądam.

 

 

Tu właśnie jest różnica, nie jesteś w stanie podważyć mojego autorytetu "random-ie"

 

 

Pozdro

Opublikowano

 

Powiedział random na random-owym koncie.

Odpowiedział ten, dla którego nie liczy się doświadczenie - a licznik postów. Zamilcz.

 

Przestań offtopować, po to jest przycisk odpowiedz by odpowiadać, nie edytować już zaistniałe - tym samym skutecznie zmniejszając czytelność tematu.

 

Nie wiem co maszdo mojego rozwiązania - w mojej grze, coprawda nie rpg, ale się sprawdza. Lepiej za wczasu rozwiązywać problemy.

Opublikowano

Moje małe rady, które moga się okazać pomocne:

1. Pisać program techniką OO (Orientalnie obiektową).

2. Każda klasa osoby plik !

3. Itemy tworzymy tablicą obiektów.

 

Wygoda i przejrzystość kodu gwarantowana w 100 %

ywug.jpg



Smacznego

Weteran
Opublikowano

@Up

Inny paradygmat programowania jest inny, ale nie gorszy. Nikt nie każe pisać programów w c++ obiektowo.

Opublikowano

1. Pisać program techniką OO (Orientalnie obiektową).

 

Chyba zorientowaną obiektowo xD.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Pojęcie wzięte z Symfoni C++ wiec chyba tam musi być dobrze :P

 

@Edit

Sopelek jak masz książkę look od strony 1044

ywug.jpg



Smacznego

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...